package com.xiyuan.smartutils.constants;

import java.nio.charset.Charset;


/**
 *
 * 编码常量定义，包括字符集编码、签名、编解码等
 *
 * @version v1.0.0 @author lgz 2017-8-27 新建与整理
 */

@SuppressWarnings({"CharsetObjectCanBeUsed", "AlibabaAvoidStartWithDollarAndUnderLineNaming"})
public interface CodeConstants extends SignConstants
{
    // BOM EF BB BF
    public static final String _UTF_8_              = "UTF-8";
    public static final Charset _UTF_8_C_           = Charset.forName(_UTF_8_);
    
    public static final String _GBK_                = "GBK";
    public static final Charset _GBK_C_             = Charset.forName(_GBK_);
    
    // 无指BOM由字节自行检查
    public static final String _UTF_16_             = "UTF-16";
    // BOM FF FE
    public static final String _UTF_16LE_           = "UTF-16LE";
    // BOM FE FF
    public static final String _UTF_16BE_           = "UTF-16BE";
    // 无指定BOM由字节自行检查
    public static final String _UTF_32_             = "UTF-32";
    // BOM FF FE 00 00
    public static final String _UTF_32LE_           = "UTF-32LE";
    // BOM 00 00 FE FF
    public static final String _UTF_32BE_           = "UTF-32BE";
    
    public static final Charset _UTF_16BE_C_        = Charset.forName(_UTF_16BE_);
    
    // ANSI 下的本地语言
    public static final String _ISO_8859_1_         = "ISO-8859-1";
    public static final String _GB2312_             = "GB2312";
    public static final Charset _ISO_8859_1_C_       = Charset.forName(_ISO_8859_1_);
    public static final Charset _GB2312_C_           = Charset.forName(_GB2312_);
    
    // 编解码
    public static final String _HEX_                = "HEX";
    public static final String _BASE64_             = "Base64";
    public static final String _MD5_                = "MD5";
    public static final String _SHA1_               = "SHA1";
    public static final String _SHA256_             = "SHA-256";
    public static final String _RSA_                = "RSA";
    
    public static final String _HMAC_MD5_           = "HmacMD5";
    public static final String _HMAC_SHA1_          = "HmacSHA1";
    public static final String _HMAC_SHA256_        = "HmacSHA256";
    public static final String _HMAC_SHA384_        = "HmacSHA384";
    public static final String _HMAC_SHA512_        = "HmacSHA512";
    
   
    
}
